/**
*   Blocks.h
*
*   Abstract class to define the blocks
*   Blocks will be presented in an 4 by 4 array.
*
*   0  0  0  0
*   0  0  0  0
*   0  0  0  0
*   0  0  0  0
*
*   pos(0,0) is the upperleft corner.
*/
#ifndef BLOCKS_H_INCLUDED
#define BLOCKS_H_INCLUDED

#include <vector>
#include "TypeDefs.h"

using namespace std;

class Blocks{
    protected:
        vector<unsigned int> _blockSpace;
    public:
        virtual void rotateLeft() = 0;
        virtual void rotateRight() = 0;
        unsigned int getBlockPos(unsigned int i);                       //Give back a value within the 4*4 array
        unsigned int getBlockPosXY(unsigned int x, unsigned int y);   //Give back a value within the 4*4 array
        virtual ~Blocks(){};
    };
#endif
